package com.ysu.his.dispensary.service;

import com.github.pagehelper.PageInfo;
import com.ysu.his.dto.PrescriptionDto;
import com.ysu.his.entity.prescription.Prescription;
import com.ysu.his.vo.DispensingVo;
import com.ysu.his.vo.PrescriptionVo;
import com.ysu.his.vo.RefundVo;

/**
 * 处方相关业务接口
 */
public interface PrescriptionService {
    /**
     * 分页条件查询处方
     * @param page 页码
     * @param limit 每页数量
     * @param prescriptionDto 查询条件
     * @return 分页结果
     */
    PageInfo<Prescription> getPrescriptionByPage(Integer page, Integer limit, PrescriptionDto prescriptionDto);

    /**
     * 根据处方ID查询处方信息
     * @param id 处方ID
     * @return 处方详情
     */
    PrescriptionVo getPrescriptionById(Long id);

    /**
     * 发药
     * @param
     */
    void dispensing(Long prescription);

    /**
     * 退药申请
     * @param prescriptionId 处方ID
     */
    void apply4Refund(Long prescriptionId);

    /**
     * 处理退药申请
     * @param id 退药记录ID
     * @param refundVo 退药信息
     */
    void processRefund(Long id, RefundVo refundVo);
} 